//
//  BoletoBanco2BradescoTests.m
//  iBoleto
//
//  Created by Diego Fincatto on 19/01/11.
//  Copyright 2011 Wmix Distribuidora Ltda. All rights reserved.

#import "BoletoBanco2BradescoTests.h"
#import "BoletoDados.h"
#import "BoletoBanco.h"
#import "BoletoBancoBradesco.h"
#import "BoletoUtil.h"

@implementation BoletoBanco2BradescoTests

- (void)setUp {
    [super setUp];
    
    //data de vencimento
    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yyyy"];
    
    //cria um dado de boleto
    boletoDados = [[BoletoDados alloc] init];
    [boletoDados setAgencia:@"2657"];
    [boletoDados setCarteira:@"09"];
    [boletoDados setCodigoFornecidoAgencia:@"60"];
    [boletoDados setCodigoOperacao:@""];
    [boletoDados setDataVencimento:[dateFormatter dateFromString:@"19/01/2011"]];
    [boletoDados setNossoNumero:@"00061824063"];
    [boletoDados setValor:[NSDecimalNumber decimalNumberWithString:@"154.73"]];
}

- (void)tearDown {
    [boletoDados release], boletoDados = nil;
    [dateFormatter release], dateFormatter = nil;
    [super tearDown];
}

- (void)testCodigoBanco {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"237", [boletoBanco codigoBanco], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testMoeda {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"9", [boletoBanco moeda], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testCampoLivre {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"2657"@"09"@"00061824063"@"0000060"@"0", [boletoBanco campoLivre], nil);
    [boletoBanco release], boletoBanco = nil;
}

- (void)testCampo1 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"2379265701", [boletoBanco campo1], nil);
    [boletoBanco release], boletoBanco = nil;    
}

- (void)testCampo2 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"90006182407", [boletoBanco campo2], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo3 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"63000006005", [boletoBanco campo3], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo4 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"2", [boletoBanco campo4], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testCampo5 {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"48520000015473", [boletoBanco campo5], nil);
    [boletoBanco release], boletoBanco = nil;        
}

- (void)testGeraLinhaDigitavelNossoNumero {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"23792.65701  90006.182407  63000.006005  2  48520000015473", [boletoBanco linhaDigitavel], nil);
    [boletoBanco release], boletoBanco = nil;   
}

- (void)testGeraCodigoBarrasNossoNumero {
    id<BoletoBanco> boletoBanco = [[BoletoBancoBradesco alloc] initWithDados:boletoDados];
    STAssertEqualObjects(@"23792485200000154732657090006182406300000600", [boletoBanco codigoDeBarras], nil);
    [boletoBanco release], boletoBanco = nil;
}

@end
